package com.xydtech.ecard.merchant.service;

import com.alibaba.fastjson.JSONObject;
import com.xydtech.ecard.merchant.domain.EcardPriorCreditChart;
import com.xydtech.ecard.merchant.domain.EcardPriorCreditDept;
import com.xydtech.ecard.merchant.domain.EcardPriorCreditUser;

import java.util.List;

/**
 * 预授信图表统计Service接口
 *
 * @author yuzhiguo
 * @date 2024-05-27 下午4:56
 */
public interface IEcardPriorCreditChartService {

    /**
     * 个人预授信额度统计信息
     * @param userId
     * @return
     */
    JSONObject getPriorCreditLimitStatistics(Long userId);

    /**
     * 个人预授信户数统计信息
     * @param userId
     * @return
     */
    JSONObject getPriorCreditNumStatistics(Long userId);

    /**
     * 全行预授信额度统计信息
     * @param deptId
     * @return
     */
    JSONObject getAllPriorCreditLimit(Long deptId);

    /**
     * 全行预授信户数统计信息
     * @param deptId
     * @return
     */
    JSONObject getAllPriorCreditNum(Long deptId);

    /**
     * 查询额度折线图数据
     * @param deptId
     * @return
     */
    List<EcardPriorCreditChart> getLimitLineChart(Long deptId);

    /**
     * 查询额度折线图数据（小程序接口）
     * @param deptId
     * @return
     */
    List<EcardPriorCreditChart> getLimitLineChartByApplet(Long deptId);

    /**
     * 查询户数折线图数据
     * @param deptId
     * @return
     */
    List<EcardPriorCreditChart> getNumLineChart(Long deptId);

    /**
     * 查询户数柱状图数据（小程序接口）
     * @param deptId
     * @return
     */
    List<EcardPriorCreditChart> getNumLineChartByApplet(Long deptId);

    /**
     * 各机构预授信业务排名
     * @param ecardPriorCreditDept
     * @return
     */
    List<EcardPriorCreditDept> getDeptPriorCreditList(EcardPriorCreditDept ecardPriorCreditDept);

    /**
     * 各营销人员预授信业务排名
     * @param ecardPriorCreditUser
     * @return
     */
    List<EcardPriorCreditUser> getUserPriorCreditList(EcardPriorCreditUser ecardPriorCreditUser);

    /**
     * 各机构预授信业务排名（小程序接口）
     * @param ecardPriorCreditDept
     * @return
     */
    List<EcardPriorCreditDept> getDeptPriorCreditListByApplet(EcardPriorCreditDept ecardPriorCreditDept);

    /**
     * 各营销人员预授信业务排名（小程序接口）
     * @param ecardPriorCreditUser
     * @return
     */
    List<EcardPriorCreditUser> getUserPriorCreditListByApplet(EcardPriorCreditUser ecardPriorCreditUser);
}
